home *** CD-ROM | disk | FTP | other *** search
- Path: chaos.aoc.nrao.edu!usenet
- From: Chris Flatters <cflatter@nrao.edu>
- Newsgroups: comp.object,comp.databases.object,comp.lang.java,comp.lang.smalltalk,comp.lang.c++,comp.lang.eiffel,comp.lang.objective-c,comp.software-eng
- Subject: Re: Data-driven vs. Behavior-driven OO Methods: a Non-Issue?
- Date: Mon, 22 Jan 1996 13:59:55 -0700
- Organization: NRAO
- Message-ID: <3103FACB.32F9@nrao.edu>
- References: <4dhop7$3aj@suez.iconcomp.com> <86n37i3ie4.fsf@beowulf.gamp.hacom.nl>
- NNTP-Posting-Host: laphroaig.aoc.nrao.edu
- Mime-Version: 1.0
- Content-Type: text/plain; charset=us-ascii
- Content-Transfer-Encoding: 7bit
- X-Mailer: Mozilla 2.0b5 (X11; I; SunOS 5.4 sun4c)
-
- albert@gamp.hacom.nl wrote:
- >
- > Desmond F. D'Souza writes in <4dhop7$3aj@suez.iconcomp.com>
- >
- > > There has been much controversy and discussion about methodologies
- > > that are behavior-driven vs. those that are data-driven, with
- > > OO-"purists" arguing vehemently against data-driven approaches. In
- > > this paper, we suggest that the difference may be smaller than often
- > > thought, if we adopt a simple definition of a "type model".
- >
- > > Paper available:
- > > <A HREF="http://www.iconcomp.com"> On the Web</A>
- >
- > I have got the paper, (first one in a series of 1)
- >
- > [...]
- >
- > I'm sorry to say so, but it IS a nice story about nothing. Some new
- > words and myths are introduced, which are solved by renaming them.
- >
- > One example is about a "Stack", which IS a relevant one.
- >
- > That examples says: do not just say a stack is " ....", be specific.
- >
- > I thing we ALL know that. It is like old good programming:
- > printf() should behave as printf!
- > But there is hardly a need to specify that. So is a stack. it should
- > behave like a stack! So all counter-examples of the paper that decribe
- > a FIFO, ar a list or ... are no stacks!
-
- Something is being missed here. The phrases "printf() should
- behave as printf()" and "a stack should behave like a stack"
- are deceptively simple. In reality they are both references
- to fairly detailed and precise specifications.
-
- If we say that printf() should behave as printf() we are actually
- saying that printf() should behave as it is described in ANSI/ISO
- 9899-1990 (the ANSI/ISO C standard). The phrase "printf() should
- behave as printf()" is actually a shorthand for approximately
- two pages of legalistic text that defines (precisely, we hope)
- what printf() should do.
-
- In the case of a stack we are not referring to an explicit
- specification as in the case of printf() but are relying on the
- facts that a stack has well defined characteristics in the context
- of computing and that people working with software all share
- the same idea of what a stack is (at least in its more general
- aspects).
-
- In analysis and design we rarely have the opportunity to reference
- external definitions (either explicit specifications such as
- that for printf() or implied specifications as for a stack). If,
- for example, we have a design that refers to a Document type,
- everyone working on the design may not understand the concept of
- a document in the same way. We must therefore define the concept
- a document (in the context of our system) with a sufficient degree
- of precision that anyone working with our design understands a
- document to be the same thing.
-
- Of course there is nothing really new here. A great deal of work
- has been done on developing notations and methods for constructing
- precise definitions in computing (including formal notations such
- as Z and the Eiffel/BON notion of programming by contract). I
- regard it as a good thing that developers of OOA/OOD methodologies
- are beginning to pay attention to the need for precise definitions.
-
- > [...]
- >
- > But it is also true, some more complex "objects" shoul be described
- > better. But do not make the mistake to solve this by specifing it by
- > other "informal words" That just hides the problem, it doen't solve
- > it.
-
- The paper clearly uses formal predicate calculus to specify behaviour.
- This is far from using "informal words".
-
- --
-
- Chris Flatters
- cflatter@nrao.edualbert@gamp.hacom.nl wrote:
-